Modify Makefile and Dockerfiles to speed up builds#44
Open
HartS wants to merge 1 commit intodhiltgen:masterfrom
Open
Modify Makefile and Dockerfiles to speed up builds#44HartS wants to merge 1 commit intodhiltgen:masterfrom
HartS wants to merge 1 commit intodhiltgen:masterfrom
Conversation
Build a base docker image for each platform with the requisite go executable, libvirt packages, and docker-machine source. When making releases, this base image will be used to build a second temporary image in which the source directory is mounted. This image is then used to launch a container in which the executable is built, after which both container and build image are removed. This speeds up compilation of the executables for each platform and allows for testing changes on all platforms more quickly
Author
|
This PR also includes the Dockerfile for a base openSUSE image, so supersedes the need for PR #43 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR speeds up the build process by keeping a base image for each targeted platform, and moving the COPY step from the Dockerfiles into a separate Dockerfile which gets built from the base image. The base images will only be rebuilt when the user has deleted them, or when the GO_VERSION or MACHINE_VERSION has changed since they were built. In case of GO_VERSION or MACHINE_VERSION changing, the cache will be reused from the previous build (which is most useful for the steps where the libvirt package installed, which requires update/refreshing package repositories in addition to downloading the packages). The image which gets the repo root copied in, and associated container which actually performs the
go get ... && go install ...are still deleted after each build.This PR also: